package com.icinfo.cloud.provider.punish.common.caseregister.service;

import com.alibaba.fastjson.JSONArray;
import com.icinfo.cloud.provider.punish.config.vo.AreaVo;
import com.icinfo.cloud.provider.punish.ucase.casemain.vo.PersonInfoMsgVo;
import com.icinfo.cloud.provider.punish.ucase.caseregister.dto.RealNameCheckDto;
import com.icinfo.cloud.provider.punish.ucase.caseregister.dto.CaseLineInfoQueryDto;
import com.icinfo.cloud.provider.punish.ucase.caseregister.vo.RealNameCheckVo;
import com.icinfo.cloud.provider.punish.ucase.caseregister.vo.CaseLineInfoVo;
import com.icinfo.cloud.provider.punish.ucase.investigateevidence.vo.CasePartyNoticeVo;
import com.icinfo.cloud.xzcf.provider.member.org.dto.Org;

import java.util.List;

/**
 * iregister公共服务
 *
 * @author lxj
 * @date 2022/3/2
 **/
public interface IRegisterCommonService {

    /**
     *  获取登录用户单位信息
     * @author lxj
     * @date  2022/2/23
     * @return Org
     **/
    Org getUserOrgMsg();

    /**
     * 获取案件办案人员信息（主办+协办），办案人签名
     * @author lxj
     * @date  2022/3/4
     * @param  caseId
     * @return
     **/
    CasePartyNoticeVo getCaseHandleAndSignMsg(String caseId);


    /**
     * 获取案件办案人员签名接口    一定要有token在请求头里面
     * @author lxj
     * @date  2022/3/4
     * @param  userId
     * @return
     **/
    String getHandleSignData(String userId);

    /**
     * 获取当事人的身份信息-通过身份证
     * @author lxj
     * @date  2022/3/17
     * @param  idCard
     * @return
     **/
    PersonInfoMsgVo getPersonInfoByIdCard(String idCard);

    /**
     * 获取区划
     * @author lxj
     * @date  2022/3/21
     * @return
     **/
    List<AreaVo> getSysAreaList();


    /**
     * 获取文书抬头
     * @author lxj
     * @date  2022/3/31
     * @return
     **/
    String getOrgStandardNameByOrgCode(String orgCode,String deptCode);


    /**
     * 通过参数获取法人库信息
     * @author lxj
     * @param uniscid
     * @param company
     * @return
     */
    JSONArray getCompanyMsg(String uniscid, String company);

    /**
     * 检查证件号和姓名
     *
     * @param checkDto 检查dto
     * @return {@link String }
     * @author shishengyao
     * @date 2022/05/17
     */
    RealNameCheckVo checkRealName(RealNameCheckDto checkDto);

    /**
     * 描述：实名认证校验不一致
     *
     * @param idCard   身份证
     * @param realName 的真实姓名
     * @return boolean
     * @author shishengyao
     * @date 2022/05/17
     */
    boolean checkRealNameDifferent(String idCard,String realName);

    /**
     * 【2.3.0】描述：获取条线列表
     * @param queryDto
     * @return {@link List< CaseLineInfoVo > }
     * @author shishengyao
     * @date 2022/06/16
     */
    List<CaseLineInfoVo> getCaseLineIInfoList(CaseLineInfoQueryDto queryDto);
}
